package com.probox.common.entity.service.centre;


import com.baomidou.mybatisplus.extension.service.IService;
import com.probox.common.entity.domain.centre.CustomerInfo;
import com.probox.common.entity.vo.centre.customer.CustomerQueryVo;
import com.probox.common.entity.vo.centre.customer.MemberlVo;
import com.probox.common.entity.vo.centre.map.ProductAxisMap;
import com.probox.common.entity.vo.centre.order.OrderQueryVo;
import com.probox.order.api.domain.OrderQuery;

import java.util.List;

/**
 * 客户信息Service接口
 *
 * @author zsy
 * @date 2021-07-23
 */
public interface ICustomerInfoService extends IService<CustomerInfo> {


    /**
     * 总客户数
     * @return
     */
    public Integer selectCustomerTotal(OrderQuery customerQueryVo);

    public Integer selectStoreCustomerTotal(OrderQueryVo queryVo);

    /**
     * 新增客户数
     * @return
     */
    public Integer selectNewlyCustomer(CustomerQueryVo customerQueryVo);


    /**
     * 会员活跃数据
     * @param customerQueryVo
     * @return
     */
    MemberlVo getMemberBehaviorData(CustomerQueryVo customerQueryVo);

    /**
     * 查询会员ID
     * @param customerQueryVo
     * @return
     */
    public List selectMemberIdList(CustomerQueryVo customerQueryVo);

    /**
     * 成交客户数
     * @return
     */
    public Integer selectMakeClientTotal(CustomerQueryVo customerQueryVo);

    /**
     * 访客数
     * @return
     */
    public Integer selectVisitorsTotal(CustomerQueryVo customerQueryVo);

    /**
     * 新增客户Map
     * @param customerQueryVo
     * @return
     */
    public ProductAxisMap selectNewlyCustomerMap(CustomerQueryVo customerQueryVo);

    /**
     * 会员数据
     * @param customerQueryVo
     * @return
     */
    MemberlVo getMemberData(CustomerQueryVo customerQueryVo);

    /**
     * 查询会员访问数量
     * @param customerQueryVo
     * @return
     */
    Integer selectMemberVisitorsData(CustomerQueryVo customerQueryVo);

    /**
     * 查询加购会员数量
     * @param customerQueryVo
     * @return
     */
    Integer selectMemberAddCarData(CustomerQueryVo customerQueryVo);

    /**
     * 查询成交会员数量
     * @param customerQueryVo
     * @return
     */
    Integer selectMakeMemberTotal(CustomerQueryVo customerQueryVo);

    /**
     * 会员数据统计
     * @param customerQueryVo
     * @return
     */
    public ProductAxisMap getMemberTotalMap(CustomerQueryVo customerQueryVo);

    /**
     * 查询收藏会员数量
     * @param customerQueryVo
     * @return
     */
    Integer selectMembershipCollectNumber(CustomerQueryVo customerQueryVo);
}
